import hasPermission from '../../utils/hasPermission'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    navList: [], // 视频标签
    videoList: [], // 视频数据
    videoId: '', // 当前正在播放的视频
    currentId: null, // 用来控制image和video的切换
    // 用于控制视频列表区域下拉动画的开关状态 
    // <!-- 设置当前下拉刷新状态，true 表示下拉刷新已经被触发，false 表示下拉刷新未被触发，自定义下拉刷新被触发函数 -->
    isTrigger: false,

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {},
  // 点击导航切换视频信息
  async changeCurrentId(event) {
    const {
      id
    } = event.currentTarget.dataset
    this.setData({
      currentId: id
    })
    wx.showLoading({
      title: "加载中,请稍等"
    });

    await this.getVideo()
    wx.hideLoading();
  },

  // 点击图片保存视频id播放视频
  playVideo(event) {
    /* 
    自定义属性获取视频id，保存视频id之后通过wx.createVideoContext得到video组件的上下文对象，通过video上下文对象,调用API进行视频播放操作，视频标签需要添加autoplay来实现自动播放
    */
    const id = event.currentTarget.id
    // console.log(event.currentTarget.id);
    this.setData({
      videoId: id
    }, () => {
      const videoContext = wx.createVideoContext(id);
      videoContext.play();
    })
  },

  // 监视视频播放操作，开始播放的时候触发
  handlePlay(event) {
    const id = event.currentTarget.id
    console.log('函数触发');
    // 函数在播放的时候触发，需要判断是否有其他视频在播放，所以每次触发这个函数都需要将当前视频id存储作为下一次的判断条件，如果有值并且id不重复，表示多个视频播放，这个时候需要将上一次的视频关闭
    if (this.oldVid && this.oldVid !== id) {
      console.log('重复了，视频需要暂停');
      const videoContent = wx.createVideoContext(this.oldVid)
      videoContent.pause();
    }
    this.oldVid = id
  },
  // 发送请求的函数
  async getVideo() {
    // 请求前需要将token添加到请求头
    const result = await this.$request("/video/group", {
      id: this.data.currentId
    })
    this.setData({
      videoList: result.datas.map(item => item.data)
    })
  },

  // 下拉操作
  async handlePullDown() {
    console.log('用户下拉');
    await this.getVideo()
    
    this.setData({
      isTrigger: false
    })
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: async function () {
    const {
      data
    } = await this.$request("/video/group/list")
    // console.log(data);
    this.setData({
      navList: data.slice(0, 15),
      currentId: data[0].id
    })
    // 获取视频数据
    if (!this.data.currentId) { // 判断currentId为空串的情况
      return;
    }

    this.getVideo()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage(event) {
    /* 
    需要判断是分享小程序还是小程序中的视频，如果是分享视频需要携带相关信息，所以需要使用自定义属性获取到数据
    */
   const {from} = event; // 如果from值是menu表示是分享小程序，如果不是则是视频
   if(from === "menu"){
     return {
       title:'硅谷云音乐',
       imageUrl:'/static/images/personal/bgImg2.jpg',
       patj:'/pages/index/index'
     }
   }else{
     const {title,imageUrl} = event.target.dataset
    return {
      title,
      imageUrl,
      patj:'/pages/video/video'
    }
   }
  }
})